/**
 * Project litesql++
 */


#ifndef _SQLITERECORD_H
#define _SQLITERECORD_H

#include <string>
#include <map>
#include <cstdint>

using std::string;
using std::map;

class SQLiteRecord {
public:

    SQLiteRecord();

    ~SQLiteRecord();

    void SetColumnValue(const string& key, const string& value);
    
    /**
     * @param column_name
     */
    const bool GetBool(const string& column_name);
    
    /**
     * @param column_name
     */
    const int32_t GetInt32(const string& column_name);
    
    /**
     * @param column_name
     */
    const int64_t GetInt64(const string& column_name);
    
    /**
     * @param column_name
     */
    const double GetDouble(const string& column_name);
    
    /**
     * @param column_name
     */
    const string GetText(const string& column_name);
    
    const int ColumnsCount();
private: 
    map<string, string> fields_;
};

#endif //_SQLITERECORD_H
